home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / game / kab2 / kab2.bas next >
BASIC Source File  |  1995-02-19  |  41KB  |  1,104 lines

  1. 10 CLEAR ,,,,,300*1024
  2. 20 DEFINT A-Z
  3. 30 RANDOMIZE TIME : SCREEN 0
  4. 40 '
  5. 50 ' グラフィック初期化
  6. 60 SCREEN 1,1,3 : SCREEN@ 1 
  7. 70 SCREEN 1,0,3 : SCREEN@ 1 
  8. 80 CLS : DEF FONT"システム   12ドット" 
  9. 90 '
  10. 100 DIM G_BUF(57600)   ' 汎用バッファ(タイトル背景用・フォント展開など)
  11. 110 ' フォント表示準備(アルファベット、数字)
  12. 120 FTA$="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?.,1234567890-+ "
  13. 130 DIM FTA0808(8*8*43-1)
  14. 140 LOAD@ "FONT\font1.dat",G_BUF  ' 8*8 フォント展開
  15. 150   C=0 : J=0 : WHILE(C<2751) 
  16. 160   FOR I=1 TO G_BUF(J) : FTA0808(C)=32767*(J AND 1) : C=C+1 : NEXT
  17. 170   J=J+1 : WEND
  18. 180 FT_Y=116 : MES$="- IY PACKAGE PRESENTS -"
  19. 190 SCREEN 1,1 : FT_X=160-LEN(MES$)*4 : GOSUB *FT_0808
  20. 200 '
  21. 210 P_NUM=4 ' 人数
  22. 220 STAGE_MAX=12 : DOU_CHANGE=3 '最大面数・胴元交代の面数
  23. 230 DIM G_BACK(255)  ' バックのタイルパターンデータ
  24. 240 DIM G_PLSEL(66169)
  25. 250 DIM G_GAME(63391)
  26. 260 DIM G_TITLE_SEL(104*48+96*8*6-1)'タイトル画面でのセレクタ
  27. 270 DIM G_CARD(40*11*56-1) : LOAD@"GRAPHIC\g_card.dat",G_CARD
  28. 280 DIM G_RESULT(220*64) '結果発表の枠 
  29. 290 DIM CARD(39)        ' カ-ドの山のデータ
  30. 300 DIM CPX(14),CPY(14) ' カードの位置
  31. 310 DIM C_LINE(4,3)     ' カードの表示情報 
  32. 320 DIM B_LINE(3)       ' ライン毎の賭け情報
  33. 330 DIM B_GOLD(P_NUM-1,3) '掛け金
  34. 340 DIM P_NAM$(P_NUM-1) '名前
  35. 350 P_NAM$(0)="AZUSA" : P_NAM$(1)="IZUMI" 
  36. 360 P_NAM$(2)="SELEN"   : P_NAM$(3)="SANAE"
  37. 370 DIM CM$(P_NUM-1,3)  ' コメント
  38. 380 CM$(1,0)="「これでいいよ」"   : CM$(1,1)="「もう1枚ください」"
  39. 390 CM$(2,0)="「もういらない」"   : CM$(2,1)="「もう1枚!」"
  40. 400 CM$(3,0)="「これでよし!」"   : CM$(3,1)="「1枚ちょうだい」"
  41. 410 CM$(1,2)="「これでいいや」"   : CM$(1,3)="「1枚とるよ」"
  42. 420 CM$(2,2)="「とらないでいこう」":CM$(2,3)="「勝負!」"
  43. 430 CM$(3,2)="「これでいく」"     : CM$(3,3)="「これでどうかな」"
  44. 440 DIM R_LINE(4)
  45. 450 ' 音楽用配列の初期化
  46. 460 '
  47. 470 LOAD@ "EUP\FM_1.fmb"
  48. 480 DIM EUP(6500),SND_CARD(500),SND_CAMERA(2000) 
  49. 490 ' かなフォント表示用配列
  50. 500 DIM FTK$(20),FTK_O(20)
  51. 510 ' フォント表示準備(カタカナ、ひらがな)
  52. 520 FTK$(1)="あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもや ゆ よらりるれろわ を んぁぃぅぇぉっ ゃゅょ"
  53. 530 FTK$(2)="アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤ ユ ヨラリルレロワ ヲ ンァィゥェォッ ャュョー~・゛゜、。"
  54. 540 FTK$(3)=""
  55. 550 FTK$(4)="がぎぐげござじずぜぞだぢづでど"
  56. 560 FTK$(5)="ばびぶべぼ"
  57. 570 FTK$(6)="ヴ"
  58. 580 FTK$(7)="ガギグゲゴザジズゼゾダヂヅデド"
  59. 590 FTK$(8)="バビブベボ"
  60. 600 FTK$(9)="ぱぴぷぺぽ"
  61. 610 FTK$(10)="パピプペポ"
  62. 620 '
  63. 630 FTK_O(1)=0  : FTK_O(2)=60
  64. 640 FTK_O(3)=2  : FTK_O(4)=5  : FTK_O(5)=25
  65. 650 FTK_O(6)=62 : FTK_O(7)=65 : FTK_O(8)=85
  66. 660 FTK_O(9)=25 : FTK_O(10)=85
  67. 670 ' フォントパターン用配列
  68. 680 'DIM FTK(16*8*127-1),FTA0816(16*8*43-1)
  69. 690 DIM FTN1616(16*16*10-1),FTA0816(16*8*43-1)
  70. 700 LOAD@ "FONT\font4.dat",G_BUF
  71. 710   C=0 : J=0 : WHILE(C<2559) 
  72. 720   FOR I=1 TO G_BUF(J) : FTN1616(C)=32767*(J AND 1) : C=C+1 : NEXT
  73. 730   J=J+1 : WEND
  74. 740 LOAD@ "FONT\font2.dat",G_BUF
  75. 750   C=0 : J=0 : WHILE(C<5503) 
  76. 760   FOR I=1 TO G_BUF(J) : FTA0816(C)=32767*(J AND 1) : C=C+1 : NEXT
  77. 770   J=J+1 : WEND
  78. 820 '
  79. 830 ' カ-ドデータの初期化
  80. 840 GOSUB *CARD_INIT  ' カ-ドデータの初期化
  81. 850 ' カード表示位置の設定
  82. 860 FOR I= 0 TO 11 : CPX(I)=32+(I \ 3)*48 : CPY(I)=96+(I MOD 3)*16:NEXT I
  83. 870 FOR I=12 TO 14 : CPX(I)=80+(I-12)*48  : CPY(I)=8              :NEXT I
  84. 880 ' キャラクタの情報初期化
  85. 890 FOR I=0 TO P_NUM-1 
  86. 900   P_DIR(I)=I : P_FACE(I)=I : P_WAKU(I)=I : P_SCO(I)=25
  87. 910 NEXT I
  88. 920 ' グラフィックデータ初期化
  89. 930 GOSUB *G_BACK_INIT
  90. 940 LOAD@ "GRAPHIC\pl_sel.dat",G_PLSEL : ' player select の時の グラフィックデータ
  91. 950 LOAD@ "GRAPHIC\G_GAME.DAT",G_GAME :' game 中のデーター準備
  92. 960 LOAD@ "GRAPHIC\RESULT2.DAT",G_RESULT
  93. 970 LOAD@ "title\titlesel.dat",G_TITLE_SEL
  94. 980 ED_BACK=0 : TL_BACK=0  'タイトル・エンディングに表示する女の子の番号
  95. 990 CTG=168 : CTR=0 : CTB=0 ' カードの透過色指定 
  96. 1000 B_GOLD_MAX=5  ' 掛け金の最大
  97. 1010 '
  98. 1020 ' オープニング
  99. 1030 *TITLE
  100. 1040 LOAD@ "EUP\OPENING2.EUP",EUP,1
  101. 1050 *TITLE1
  102. 1060 SCREEN 1,0
  103. 1070 LINE (0,0)-(319,239),PSET,7,BF
  104. 1080 LOAD@ "GRAPHIC\TITLE.DAT",G_BUF
  105. 1090 PUT@A (0,0)-(159,160),G_BUF
  106. 1100 SCREEN 1,1
  107. 1110 LOAD@ "TITLE\GIRL"+CHR$(TL_BACK+&H30)+".VRM",G_BUF
  108. 1120 FA_F=1 : GOSUB *DSP_FADE : SCREEN 1,0
  109. 1130 FOR I=0 TO 239 STEP 2
  110. 1140   PUT@A (80,I)-(319,I),G_BUF,MATTE,,,7,I*240
  111. 1150   PUT@A (80,239-I)-(319,239-I),G_BUF,MATTE,,,7,(239-I)*240
  112. 1160   IF I MOD 6 = 0 THEN WAIT 1
  113. 1170 NEXT I
  114. 1180 IF NOT PLAY(0) THEN PLAY@ EUP,1 '音楽再生
  115. 1190 PUT@A (28,168)-(131,215),G_TITLE_SEL,MATTE,,,7,4608
  116. 1200 TL_SEL=0 : COUNT=0
  117. 1210 '
  118. 1220 IF PAD(1)<>0 OR PTRIG(1)<>0 THEN 1220
  119. 1230 I=PAD(1) : PT=PTRIG(1)
  120. 1240   COUNT=COUNT+1 : WAIT 1
  121. 1250   IF COUNT>1000 THEN COUNT=0 : GOSUB *SETUMEI 
  122. 1260 IF I<>1 AND I<>5 AND (PT AND 1)<>1 THEN 1230
  123. 1270 COUNT=0
  124. 1280 IF I<>0 THEN 
  125. 1290   PUT@A (32,176+TL_SEL*12)-(127,183+TL_SEL*12),G_TITLE_SEL,MATTE,,,7,TL_SEL*768
  126. 1300   TL_SEL=(TL_SEL+(I-3)/2+3)MOD 3
  127. 1310   PUT@A (32,176+TL_SEL*12)-(127,183+TL_SEL*12),G_TITLE_SEL,MATTE,,,7,(3+TL_SEL)*768
  128. 1320   GOTO 1220
  129. 1330 ENDIF
  130. 1340 FOR I=0 TO 1
  131. 1350   PUT@A (32,176+TL_SEL*12)-(127,183+TL_SEL*12),G_TITLE_SEL,MATTE,,,7,(3+TL_SEL)*768 : WAIT 20
  132. 1360   PUT@A (32,176+TL_SEL*12)-(127,183+TL_SEL*12),G_TITLE_SEL,MATTE,,,7,TL_SEL*768 :WAIT 20
  133. 1370 NEXT I
  134. 1380   PUT@A (32,176+TL_SEL*12)-(127,183+TL_SEL*12),G_TITLE_SEL,MATTE,,,7,(3+TL_SEL)*768 
  135. 1390 IF TL_SEL=2 THEN OUT &H5EC,1 :PLAY OFF: END 
  136. 1400 IF TL_SEL=1 THEN GOSUB *CONFIG
  137. 1410 PLAY OFF : OUT &H5EC,0 '互換モードに
  138. 1420 '
  139. 1430 ' プレーヤーセレクト
  140. 1440 *PL_SEL
  141. 1450 SCREEN 1,1 : FA_F=0 : GOSUB *DSP_FADE
  142. 1460 SCREEN 1,0 : GOSUB *DSP_G_BACK_ALL
  143. 1470 PUT@A (51,11)-(267,43),G_PLSEL             'player select の 枠
  144. 1480 FOR I=0 TO 3 
  145. 1490   PUT@A (4+I*80,52)-(75+I*80,155),G_PLSEL,,,,,7162
  146. 1500   PUT@A (8+I*80,56)-(71+I*80,127),G_PLSEL,,,,,22138+4608*I
  147. 1510   FT_X=I*80+20 : FT_Y=136 : MES$=P_NAM$(I) : GOSUB *FT_0816
  148. 1520 NEXT I
  149. 1530 SCREEN 1,1,3 : FA_F=1 : GOSUB *DSP_FADE
  150. 1540 SCREEN 1,0,3
  151. 1550 '
  152. 1560 *PL_SEL2
  153. 1570 PUT@A (80,176)-(239,223),G_PLSEL,,,,,58490 'infomation の枠
  154. 1580 INFO$="つかうキャラクターを" : CX=160 : DY=184 : GOSUB *DSP_INFO_C
  155. 1590 INFO$="えらんでください"      : DY=200 : GOSUB *DSP_INFO_C
  156. 1600 PL_CUR=0 : GOSUB *DSP_PL_CURSOR
  157. 1610 '
  158. 1620 IF PAD(1)<>0 OR PTRIG(1)<>0 THEN 1620
  159. 1630 I=PAD(1) : PT=PTRIG(1)
  160. 1640 IF I<>3 AND I<>7 AND (PT AND 1)=0 THEN 1630
  161. 1650 GOSUB *ERS_PL_CURSOR
  162. 1660 IF I=3 THEN PL_CUR=(PL_CUR+1)MOD 4
  163. 1670 IF I=7 THEN PL_CUR=(PL_CUR+3)MOD 4
  164. 1680 IF (PT AND 1)=0 THEN GOSUB *DSP_PL_CURSOR : GOTO 1620
  165. 1690 ' Aボタンを押した
  166. 1700 PUT@A (80,176)-(239,223),G_PLSEL,,,,,58490 'infomation の枠
  167. 1710 PUT@A (4+PL_CUR*80,52)-(75+PL_CUR*80,155),G_PLSEL,MATTE,,,0,14650
  168. 1720 FOR I=0 TO 1
  169. 1730   WAIT 15 : GOSUB *DSP_PL_CURSOR
  170. 1740   WAIT 15 : GOSUB *ERS_PL_CURSOR
  171. 1750 NEXT I
  172. 1760   WAIT 20 : GOSUB *DSP_PL_CURSOR
  173. 1770 '
  174. 1780 INFO$="これでよいですか" : CX=160 : DY=184 : GOSUB *DSP_INFO_C
  175. 1790 I_YN=(0=0)               : DY=200 : GOSUB *SEL_YN_C
  176. 1800 IF NOT(I_YN) THEN 
  177. 1810   GOSUB *ERS_PL_CURSOR
  178. 1820   PUT@A (4+PL_CUR*80,52)-(75+PL_CUR*80,155),G_PLSEL,MATTE,,,0,7162
  179. 1830   GOTO *PL_SEL2
  180. 1840 ENDIF
  181. 1850 ' YES の場合
  182. 1860 GOSUB *DSP_FADE 
  183. 1870 SCREEN 1,1 : LINE (0,0)-(319,239),PSET,[0,0,0],BF
  184. 1880 SCREEN 1,0 : GOSUB *DSP_G_BACK_ALL
  185. 1890 '
  186. 1900 ' main
  187. 1910 '
  188. 1920 STAGE=1
  189. 1930 IF SND_CARD(6)=0 THEN LOAD@ "snd\CARD3.SND",SND_CARD  ' カードをめくる音
  190. 1940 ' キャラごとの情報設定
  191. 1950 FOR I=0 TO P_NUM-1
  192. 1960   J=INT(RND(1)*P_NUM) : IF I=J THEN 1960 ELSE SWAP P_DIR(I),P_DIR(J)
  193. 1970   J=INT(RND(1)*P_NUM) : IF I=J THEN 1970 ELSE SWAP P_FACE(I),P_FACE(J)
  194. 1980  'J=INT(RND(1)*P_NUM) : IF I=J THEN 970 ELSE SWAP P_WAKU(I),P_WAKU(J)
  195. 1990   P_SCO(I)=25
  196. 2000 NEXT I
  197. 2010 '
  198. 2020 I=0:WHILE(P_FACE(I)<>PL_CUR) : I=I+1 : WEND
  199. 2030 IF I<>0 THEN SWAP P_FACE(I),P_FACE(0)
  200. 2040 '
  201. 2050 FOR I=0 TO P_NUM-1 : P_WORK(P_DIR(I))=I
  202. 2060                      P_PER(P_WAKU(I))=I : NEXT I
  203. 2070 ' 画面の準備
  204. 2080 SCREEN 1,0 : LINE (0,72)-(223,87),PSET,0,BF
  205. 2090   GOSUB *DSP_OYA_WAKU
  206. 2100 SCREEN 1,1
  207. 2110 FOR I=0 TO 3
  208. 2120   X=0
  209. 2130   PUT@A (X,I*60)-(X+95,I*60+59),G_GAME,,,,,I*5760
  210. 2140   PUT@A(X+4,4+60*I)-(X+43,55+60*I),G_GAME,,,,,P_FACE(P_PER(I))*2080+55072
  211. 2150   PUT@A(X+52,32+60*I)-(X+91,43+60*I),G_GAME,,,,,P_PER(I)*480+41280
  212. 2160   DX=X+91: DY=48+60*I : DSP$=RIGHT$("    "+STR$(P_SCO(P_PER(I))),5) : GOSUB *DSP_G_NUM
  213. 2170   LINE (X+52,I*60+8)-(X+91,I*60+23),PSET,[0,0,0],BF
  214. 2180   LINE (X-8,I*60)-(X-1,I*60+59),PSET,[0,0,0,1],BF
  215. 2190     GET@A (X,I*60)-(X+95,I*60+59),G_BUF
  216. 2200   FOR X=0 TO 224 STEP 8
  217. 2210     PUT@A (X,I*60)-(X+95,I*60+59),G_BUF
  218. 2220     LINE (X-10,I*60)-(X-1,I*60+59),PSET,[0,0,0,1],BF
  219. 2230   NEXT X
  220. 2240   FT_X=276 : FT_Y=8+I*60 : MES$=P_NAM$(P_FACE(P_PER(I)))
  221. 2250   GOSUB *FT_0816
  222. 2260 NEXT I
  223. 2270 GOSUB *DSP_KO_DIR
  224. 2280 LINE (0,72)-(223,87),PSET,0,BF
  225. 2290 '
  226. 2300 '
  227. 2310 INFO$="GAME START" : CX=112 : DY=74 : GOSUB *DSP_INFO_C
  228. 2320 '
  229. 2330 GOSUB *WAIT1 : GOSUB *ERS_INFO
  230. 2340 *STAGE_START
  231. 2350 CX=112 :DY=74 : INFO$="STAGE"+AKCNV$(STR$(STAGE)) 
  232. 2360 PLAY"t140@029v10o5c16<b16>c16r4t120" : GOSUB *DSP_INFO_C
  233. 2370 WHILE(PLAY(0)):WEND
  234. 2380 GOSUB *CARD_SHUF : COUNT=0  'カードのシャッフル
  235. 2390 ' まず、5枚配る
  236. 2400 C_SIDE=0 : GOSUB *BRING5CARD
  237. 2410 '
  238. 2420 ' 賭ける
  239. 2430 WAIT 70 : GOSUB *ERS_INFO
  240. 2440 ' 賭け情報消去
  241. 2450 FOR I=0 TO P_NUM-1
  242. 2460   FOR J=0 TO 3
  243. 2470     B_GOLD(I,J)=0
  244. 2480   NEXT J
  245. 2490 NEXT I
  246. 2500 '
  247. 2510 IF P_DIR(0)<>0 THEN INFO$="合計"+STR$(B_GOLD_MAX)+"まで賭けられます" ELSE INFO$="コンピュータが賭けます"
  248. 2520 CX=112 : DY=74 : GOSUB *DSP_INFO_C
  249. 2530 FOR I=1 TO P_NUM-1
  250. 2540   P=P_WORK(I)
  251. 2550   ON P+1 GOSUB *B_HUMAN,*B_COM1,*B_COM2,*B_COM3
  252. 2560   GOSUB *DSP_BET
  253. 2570   WAIT 50
  254. 2580 NEXT I
  255. 2590 '
  256. 2600 ' 賭けられたラインチェック
  257. 2610 FOR I=0 TO 3
  258. 2620   B_LINE(I)=0
  259. 2630   FOR J=1 TO 3
  260. 2640     B_LINE(I)=B_LINE(I)-2^P_WORK(J)*(B_GOLD(P_WORK(J),I)>0)
  261. 2650   NEXT J
  262. 2660 NEXT I
  263. 2670 '
  264. 2680 ' 二枚目を配る
  265. 2690 CX=112 : DY=74 : GOSUB *ERS_INFO_C ' メッセージを消す
  266. 2700 C_SIDE=1 : GOSUB *BRING5CARD
  267. 2710 '
  268. 2720 ' 3枚目を引くかどうかの選択  Pick 3
  269. 2730 FOR I=0 TO 3
  270. 2740   IF B_LINE(I)=0 THEN *LOOP_END
  271. 2750   SCREEN 1,0 
  272. 2760     GET@A(28+I*48,88)-(75+I*48,239),G_BUF
  273. 2770     LINE (28+I*48,88)-(75+I*48,239),PASTEL,7,BF
  274. 2780   SCREEN 1,1
  275. 2790   IF (B_LINE(I) AND 1)=1 THEN CPN=3*I+1 : C_SIDE=0 : PCMPLAY SND_CARD : GOSUB *DSP_CARD 
  276. 2800     B_MAX=0 : J=0 : P=0 : WHILE (J<P_NUM) 
  277. 2810       IF B_MAX=B_GOLD(J,I) THEN IF P<>0 THEN P=J
  278. 2820       IF B_MAX<B_GOLD(J,I) THEN P=J : B_MAX=B_GOLD(J,I)
  279. 2830       J=J+1 
  280. 2840     WEND
  281. 2850   SUM=(C_LINE(I,1)+C_LINE(I,2))MOD 10 
  282. 2860   ' 合計が 4以下のとき
  283. 2870   IF SUM<4 THEN
  284. 2880     IF (B_LINE(I) AND 1)=1 THEN 
  285. 2890       INFO$="3以下なので 1枚取ります(pushA)"
  286. 2900       DY=74 : GOSUB *DSP_INFO_C
  287. 2910       GOSUB *A_WAIT_2
  288. 2920     ELSE
  289. 2930       INFO$="COM"+STR$(P)+CM$(P,1)
  290. 2940       DY=74 : GOSUB *DSP_INFO_C : GOSUB *WAIT1
  291. 2950     ENDIF
  292. 2960     CPN=I*3+2 : C_LINE(I,0)=3 : C_LINE(I,3)=CARD(COUNT)
  293. 2970     COUNT=COUNT+1 : C_SIDE=0 : PCMPLAY SND_CARD: GOSUB *DSP_CARD
  294. 2980   ENDIF 
  295. 2990   ' 合計が 4 から 7 の とき
  296. 3000   IF SUM>3 AND SUM<7 THEN 
  297. 3010     ON P+1 GOSUB *P3_HUMAN,*P3_COM1,*P3_COM2,*P3_COM3
  298. 3020     IF TAKE=1 THEN
  299. 3030     CPN=I*3+2 : C_LINE(I,0)=3 : C_LINE(I,3)=CARD(COUNT)
  300. 3040     COUNT=COUNT+1 : C_SIDE=0 : PCMPLAY SND_CARD: GOSUB *DSP_CARD
  301. 3050     ENDIF
  302. 3060   ENDIF
  303. 3070   ' 合計が 7以上の時
  304. 3080   IF SUM>6 THEN
  305. 3090     IF (B_LINE(I) AND 1)=1 THEN 
  306. 3100       INFO$="7以上なので 取れません(pushA)"
  307. 3110       DY=74 : GOSUB *DSP_INFO_C
  308. 3120       GOSUB *A_WAIT_2
  309. 3130     ELSE
  310. 3140       INFO$="COM"+STR$(P)+CM$(P,0)
  311. 3150       DY=74 : GOSUB *DSP_INFO_C : GOSUB *WAIT1
  312. 3160     ENDIF
  313. 3170   ENDIF 
  314. 3180 ' PLAYER が 賭けていた場合
  315. 3190 IF (B_LINE(I) AND 1)=1 THEN
  316. 3200   IF C_LINE(I,0)=2 THEN C_SIDE=1 ELSE C_SIDE=3  '元通り裏返す
  317. 3210   CPN=I*3+1 : GOSUB *DSP_CARD
  318. 3220 ENDIF
  319. 3230     GOSUB *ERS_INFO_C
  320. 3240     SCREEN 1,0
  321. 3250       PUT@A(28+I*48,88)-(75+I*48,239),G_BUF
  322. 3260     SCREEN 1,1
  323. 3270 *LOOP_END 
  324. 3280 NEXT I
  325. 3290 '
  326. 3300 ' 胴元の番
  327. 3310 SCREEN 1,0
  328. 3320   GET@A (76,4)-(219,67),G_BUF
  329. 3330   LINE (76,4)-(219,67),PASTEL,7,BF
  330. 3340 SCREEN 1,1
  331. 3350 IF P_DIR(0)<>0 THEN
  332. 3360   ' 胴元がコンピュータの場合
  333. 3370   INFO$="胴元は コンピューターです"
  334. 3380   GOSUB *DSP_INFO_C : GOSUB *WAIT1 : GOSUB *ERS_INFO_C
  335. 3390   SUM=(C_LINE(4,1)+C_LINE(4,2))MOD 10
  336. 3400   IF SUM<4 THEN TAKE=1
  337. 3410   IF SUM>6 THEN TAKE=0
  338. 3420   IF SUM>3 AND SUM<7 THEN TAKE=INT(RND(1)*2)
  339. 3430   IF C_LINE(4,1)=1 AND C_LINE(4,2)=4 THEN TAKE=0
  340. 3440   IF C_LINE(4,1)=4 AND C_LINE(4,2)=1 THEN TAKE=0
  341. 3450   IF C_LINE(4,1)=1 AND C_LINE(4,2)=9 THEN TAKE=0
  342. 3460   IF C_LINE(4,1)=9 AND C_LINE(4,2)=1 THEN TAKE=0
  343. 3470   '
  344. 3480   INFO$="com"+STR$(P_WORK(0))+"「・・・」" : GOSUB *DSP_INFO_C
  345. 3490   GOSUB *WAIT1 : GOSUB *ERS_INFO_C
  346. 3500   '
  347. 3510   IF TAKE=1 THEN
  348. 3520     CPN=14 : C_LINE(I,0)=3 : C_LINE(4,3)=CARD(COUNT)
  349. 3530     COUNT=COUNT+1 : PCMPLAY SND_CARD : C_SIDE=1 : GOSUB *DSP_CARD
  350. 3540   ENDIF
  351. 3550   '
  352. 3560   INFO$="COM"+STR$(P_WORK(0))+CM$(P_WORK(0),2+TAKE)
  353. 3570   GOSUB *DSP_INFO_C : GOSUB *WAIT1 : GOSUB *ERS_INFO_C
  354. 3580 ELSE
  355. 3590   ' 胴元が人間の場合
  356. 3600   INFO$="胴元は あなたです"
  357. 3610   GOSUB *DSP_INFO_C : GOSUB *WAIT1 : GOSUB *ERS_INFO_C
  358. 3620   '
  359. 3630   C_SIDE=0 : FOR CPN=12 TO 13 : PCMPLAY SND_CARD : GOSUB *DSP_CARD :NEXT CPN
  360. 3640   GOSUB *P3_HUMAN
  361. 3650   ' 
  362. 3660   IF TAKE=1 THEN
  363. 3670     CPN=14 : C_LINE(I,0)=3 : C_LINE(4,3)=CARD(COUNT)
  364. 3680     COUNT=COUNT+1 : C_SIDE=0 : PCMPLAY SND_CARD : GOSUB *DSP_CARD
  365. 3690   GOSUB *WAIT1
  366. 3700   ENDIF
  367. 3710 '  
  368. 3720 ENDIF
  369. 3730 '
  370. 3740 SCREEN 1,0
  371. 3750   PUT@A (76,4)-(219,67),G_BUF
  372. 3760 SCREEN 1,1
  373. 3770 '
  374. 3780 '  結果発表
  375. 3790 '
  376. 3800 INFO$="結果発表" : GOSUB *DSP_INFO_C : GOSUB *WAIT1
  377. 3810 FOR I=0 TO 3
  378. 3820   IF B_LINE(I)<>0 THEN
  379. 3830      IF C_LINE(I,0)=2 THEN C_SIDE=0 ELSE C_SIDE=4
  380. 3840      CPN=1+I*3 : PCMPLAY SND_CARD : GOSUB *DSP_CARD : WAIT 50
  381. 3850   ENDIF
  382. 3860 NEXT I
  383. 3870 '
  384. 3880 FOR I=0 TO 3
  385. 3890   R_LINE(I)=0
  386. 3900   IF B_LINE(I)=0 THEN NEXT I : GOTO *R_DOUMOTO
  387. 3910   GET@A (28+I*48,0)-(75+I*48,103),G_BUF
  388. 3920   FOR J=-72 TO 104
  389. 3930     PUT@A (28+I*48,J)-(75+I*48,J+71),G_GAME,,,,,49056
  390. 3940     IF J>0 THEN PUT@A (28+I*48,J-1)-(75+I*48,J-1),G_BUF,,,,,(J-1)*48
  391. 3950   NEXT J  : '結果(子)のカードをスライドさせる
  392. 3960 '
  393. 3970   FOR J=1 TO C_LINE(I,0)
  394. 3980       R_LINE(I)=C_LINE(I,J)-10*(C_LINE(I,J)=0)+R_LINE(I)
  395. 3990   NEXT J
  396. 4000   DSP$=RIGHT$(STR$(R_LINE(I)),2)
  397. 4010   DX=71+I*48 : DY=108 : GOSUB *DSP_G_NUM  : 'total 表示
  398. 4020 '
  399. 4030   R_LINE(I)=R_LINE(I) MOD 10
  400. 4040   FT_X=56+I*48 : FT_Y=128
  401. 4050   PUT@A (FT_X,FT_Y)-(FT_X+15,FT_Y+15),FTN1616,,,,,(INSTR("1234567890",CHR$(&H30+R_LINE(I)))-1)*16*16
  402. 4060 '役の判定
  403. 4070   IF R_LINE(I)=9 THEN PUT@A (I*48+32,156)-(I*48+71,171),G_GAME,,,,,52512
  404. 4080   IF C_LINE(I,0)=3 AND C_LINE(I,1)=C_LINE(I,2) AND C_LINE(I,2)=C_LINE(I,3) THEN R_LINE(I)=R_LINE(I)+20 : PUT@A (I*48+32,156)-(I*48+71,171),G_GAME,,,,,53152
  405. 4090   GOSUB *WAIT1
  406. 4100 NEXT I
  407. 4110 '胴元のカードオープン
  408. 4120 *R_DOUMOTO : SCREEN 1,0
  409. 4130   GET@A (76,4)-(219,67),G_BUF   '9216
  410. 4140   LINE (76,4)-(219,67),PASTEL,7,BF
  411. 4150 SCREEN 1,1
  412. 4160 C_SIDE=0 : FOR CPN=12 TO C_LINE(4,0)+11 
  413. 4170   PCMPLAY SND_CARD : GOSUB *DSP_CARD
  414. 4180   IF P_DIR(0)<>0 THEN GOSUB *WAIT1
  415. 4190 NEXT CPN
  416. 4200 '
  417. 4210 PUT@A (96,12)-(199,59),G_GAME,,,,,44064
  418. 4220 R_LINE(4)=0 : FOR I=1 TO C_LINE(4,0)
  419. 4230   R_LINE(4)=R_LINE(4)+C_LINE(4,I)-10*(C_LINE(4,I)=0)
  420. 4240 NEXT I
  421. 4250 DSP$=RIGHT$(STR$(R_LINE(4)),2) : DX=139 : DY=20 : GOSUB *DSP_G_NUM
  422. 4260 R_LINE(4)=R_LINE(4) MOD 10
  423. 4270 '
  424. 4280   FT_X=180 : FT_Y=16
  425. 4290   PUT@A (FT_X,FT_Y)-(FT_X+15,FT_Y+15),FTN1616,,,,,(INSTR("1234567890",CHR$(&H30+R_LINE(4)))-1)*16*16
  426. 4300 ' 役の判定
  427. 4310   IF R_LINE(4)=9 THEN PUT@A (156,40)-(195,55),G_GAME,,,,,52512
  428. 4320   IF C_LINE(4,0)=2 AND C_LINE(4,1)=9 AND C_LINE(4,2)=1 THEN R_LINE(4)=R_LINE(4)+10 : PUT@A(156,40)-(195,55),G_GAME,,,,,53792
  429. 4330   IF C_LINE(4,0)=2 AND C_LINE(4,1)=1 AND C_LINE(4,2)=9 THEN R_LINE(4)=R_LINE(4)+10 : PUT@A(156,40)-(195,55),G_GAME,,,,,53792
  430. 4340   IF C_LINE(4,0)=2 AND C_LINE(4,1)=4 AND C_LINE(4,2)=1 THEN R_LINE(4)=R_LINE(4)+10 : PUT@A(156,40)-(195,55),G_GAME,,,,,53792+640
  431. 4350   IF C_LINE(4,0)=2 AND C_LINE(4,1)=1 AND C_LINE(4,2)=4 THEN R_LINE(4)=R_LINE(4)+10 : PUT@A(156,40)-(195,55),G_GAME,,,,,53792+640
  432. 4360 SCREEN 1,0
  433. 4370   PUT@A (76,4)-(219,67),G_BUF   '9216
  434. 4380 SCREEN 1,1
  435. 4390 '
  436. 4400 ' 得点計算 -- 各キャラクタ・列ごとの得点
  437. 4410 LINE(0,72)-(223,87),PSET,[0,0,0,1],BF
  438. 4420 INFO$="得点計算" : DY=74 : GOSUB *DSP_INFO_C
  439. 4430 GET@A (2,176)-(221,239),G_BUF
  440. 4440 PUT@A (2,176)-(221,239),G_RESULT
  441. 4450 FOR I=0 TO 3
  442. 4460   IF B_LINE(I)=0 THEN NEXT I : GOTO 4810
  443. 4470   DX=I*32+77  '
  444. 4480   IF R_LINE(I)<R_LINE(4) THEN 
  445. 4490       B_LINE(I)=0
  446. 4500     FOR J=1 TO 3
  447. 4510       DY=187+P_WORK(J)*13
  448. 4520       DSP$=RIGHT$("  "+STR$(-B_GOLD(P_WORK(J),I)),3)
  449. 4530     IF B_GOLD(P_WORK(J),I)<>0 THEN GOSUB *DSP_G_NUM
  450. 4540          B_GOLD(P_WORK(0),I)=B_GOLD(P_WORK(0),I)+B_GOLD(P_WORK(J),I)
  451. 4550          B_GOLD(P_WORK(J),I)=-B_GOLD(P_WORK(J),I)
  452. 4560     NEXT J
  453. 4570     DY=187+P_WORK(0)*13 : 
  454. 4580     DSP$=RIGHT$(" +"+MID$(STR$(B_GOLD(P_WORK(0),I)),2),3) 
  455. 4590     GOSUB *DSP_G_NUM
  456. 4600   ENDIF
  457. 4610   IF R_LINE(I)>R_LINE(4) THEN
  458. 4620     FOR J=1 TO 3
  459. 4630       P=P_WORK(0) :B_GOLD(P,I)=B_GOLD(P,I)-B_GOLD(P_WORK(J),I) 
  460. 4640       DY=187+P_WORK(J)*13
  461. 4650       DSP$=RIGHT$(" +"+MID$(STR$(B_GOLD(P_WORK(J),I)),2),3)
  462. 4660       IF B_GOLD(P_WORK(J),I)<>0 THEN GOSUB *DSP_G_NUM
  463. 4670     NEXT J
  464. 4680     DY=187+P*13
  465. 4690     DSP$=RIGHT$("  "+STR$(B_GOLD(P,I)),3)
  466. 4700     GOSUB *DSP_G_NUM
  467. 4710   ENDIF
  468. 4720   IF R_LINE(I)=R_LINE(4) THEN
  469. 4730     DSP$="  0"
  470. 4740     FOR J=0 TO 3
  471. 4750       DY=187+P_WORK(J)*13 
  472. 4760       IF J=0 OR B_GOLD(P_WORK(J),I)<>0 THEN GOSUB *DSP_G_NUM
  473. 4770       B_GOLD(P_WORK(J),I)=0
  474. 4780     NEXT J
  475. 4790   ENDIF
  476. 4800 NEXT I
  477. 4810 DY=74 : GOSUB *ERS_INFO_C
  478. 4820 '
  479. 4830 '  得点計算  -- 得点の加算・減算
  480. 4840 B_MAX=0
  481. 4850 FOR I=0 TO P_NUM-1
  482. 4860   FOR J=1 TO 3
  483. 4870     B_GOLD(I,0)=B_GOLD(I,J)+B_GOLD(I,0)
  484. 4880   NEXT J
  485. 4890   DX=215+2 : DY=187+I*13
  486. 4900   IF B_GOLD(I,0)>0 THEN DSP$=RIGHT$(" +"+MID$(STR$(B_GOLD(I,0)),2),3) ELSE DSP$=RIGHT$("  "+STR$(B_GOLD(I,0)),3) 
  487. 4910   GOSUB *DSP_G_NUM
  488. 4920   IF B_MAX<ABS(B_GOLD(I,0)) THEN B_MAX=ABS(B_GOLD(I,0))
  489. 4930 NEXT I
  490. 4940 IF B_GOLD(0,0)<0 THEN 
  491. 4950   LOAD@ "eup\lose.eup",EUP,1 : PLAY@ EUP,0
  492. 4960   WHILE (PLAY(0)) : WEND
  493. 4970 ENDIF
  494. 4980 IF B_GOLD(0,0)>0 THEN 
  495. 4990   LOAD@ "eup\win.eup",EUP,1 : PLAY@ EUP,0
  496. 5000   WHILE (PLAY(0)) : WEND
  497. 5010 ENDIF
  498. 5020 IF B_GOLD(0,0)=0 THEN PLAY "@028o4b8g8a8a8" :WHILE (PLAY(0)) : WEND
  499. 5030 FOR I=0 TO B_MAX-1
  500. 5040   FOR P=0 TO P_NUM-1
  501. 5050     P_SCO(P)=P_SCO(P)+SGN(B_GOLD(P,0))
  502. 5060     B_GOLD(P,0)=B_GOLD(P,0)-SGN(B_GOLD(P,0))
  503. 5070   NEXT P
  504. 5080   PLAY "T120@28O5C32"
  505. 5090   FOR P=0 TO P_NUM-1
  506. 5100     GOSUB *DSP_SCO
  507. 5110     DX=215+2 : DY=187+P*13
  508. 5120     IF B_GOLD(P,0)>0 THEN DSP$=RIGHT$(" +"+MID$(STR$(B_GOLD(P,0)),2),3) ELSE DSP$=RIGHT$("  "+STR$(B_GOLD(P,0)),3) 
  509. 5130     GOSUB *DSP_G_NUM
  510. 5140   NEXT P
  511. 5150   WHILE(PLAY(0)) : WEND: IF (PTRIG(1) AND 1)=0 THEN WAIT 3
  512. 5160 NEXT I
  513. 5170 GOSUB *WAIT1
  514. 5180 '
  515. 5190 '  stage 終了処理
  516. 5200 *STAGE_END
  517. 5210 IF STAGE=STAGE_MAX THEN *GAME_SET
  518. 5220 IF (STAGE MOD DOU_CHANGE)=0 THEN 
  519. 5230   DY=74 : INFO$="胴元を交代します" : GOSUB *DSP_INFO_C
  520. 5240   FOR I=0 TO P_NUM-1
  521. 5250     P_DIR(I)=(P_DIR(I)+1)MOD P_NUM
  522. 5260   NEXT I
  523. 5270   FOR I=0 TO P_NUM-1
  524. 5280     P_WORK(P_DIR(I))=I
  525. 5290   NEXT I
  526. 5300     SCREEN 1,0 : GOSUB *DSP_OYA_WAKU
  527. 5310     SCREEN 1,1
  528. 5320   GOSUB *WAIT1 : GOSUB *ERS_INFO_C
  529. 5330 ENDIF
  530. 5340 STAGE=STAGE+1
  531. 5350 LINE(0,0)-(223,71),PSET,[0,0,0,1],BF
  532. 5360 LINE(0,88)-(223,239),PSET,[0,0,0,1],BF
  533. 5370 GOSUB *DSP_KO_DIR
  534. 5380 COUNT=0 : GOSUB *CARD_SHUF
  535. 5390 GOTO *STAGE_START
  536. 5400 '
  537. 5410 '
  538. 5420 *GAME_SET
  539. 5430 IF STAGE_MAX=1 THEN P_SCO(0)=50
  540. 5440 FOR I=0 TO P_NUM-1
  541. 5450   R_LINE(I)=I
  542. 5460 NEXT I
  543. 5470 SCREEN 1,1 : FA_F=0 : GOSUB *DSP_FADE
  544. 5480 FOR I=1 TO P_NUM-1
  545. 5490   IF P_SCO(R_LINE(I))>P_SCO(R_LINE(I-1)) THEN SWAP R_LINE(I),R_LINE(I-1) : I=0
  546. 5500 NEXT I
  547. 5510 SCREEN 1,0 : LOAD@"GRAPHIC\RESULT61.DAT",G_BUF
  548. 5520 IF R_LINE(3)=0 THEN LINE(0,0)-(319,239),PSET,0,BF
  549. 5530 IF R_LINE(1)=0 OR R_LINE(2)=0 THEN GOSUB *DSP_G_BACK_ALL
  550. 5540 IF R_LINE(0)=0 THEN
  551. 5550   SCREEN@ 0
  552. 5560   PALETTE 1,7 : PALETTE 2,7 
  553. 5570   FOR I=0 TO 19 
  554. 5580    CIRCLE (320,240),410,%(I AND 1)+1,,I/20,(I+1)/20,F
  555. 5595   NEXT I
  556. 5600 ENDIF
  557. 5610 SCREEN 1,1 : FA_F=1 : GOSUB *DSP_FADE
  558. 5620 '
  559. 5630 FOR I=0 TO 187 STEP 2
  560. 5640   PUT@A(35,26+I)-(35+249,26+I),G_BUF,MATTE,,,7,250*I
  561. 5650   PUT@A(35,26+187-I)-(35+249,26+187-I),G_BUF,MATTE,,,7,250*(187-I)
  562. 5660 NEXT I
  563. 5670 DEF FONT"システム   16ドット"
  564. 5680 FOR I=0 TO P_NUM-1
  565. 5690   DY=70+26+31*I-4 
  566. 5700   FT_X=130:FT_Y=DY-4: MES$=P_NAM$(P_FACE(R_LINE(I))) : GOSUB *FT_0816
  567. 5710   PUT@A (109,DY)-(126,DY+11),G_GAME,,,,,43200+216*R_LINE(I)
  568. 5720   MES$=RIGHT$("   "+STR$(P_SCO(R_LINE(I))),3)
  569. 5730   FT_X=214+32-8*3 : FT_Y=DY-4 : GOSUB *FT_0816
  570. 5740 NEXT I
  571. 5750 DEF FONT "システム   12ドット"
  572. 5760 '
  573. 5770 IF R_LINE(0)=0 AND ED_BACK=P_FACE(0)+1 THEN TL_BACK=ED_BACK
  574. 5780 IF R_LINE(0)=0 THEN ED_BACK=P_FACE(0)+1 ELSE ED_BACK=0
  575. 5790 MES$="PUSH A BUTTON"
  576. 5800 FT_X=160-LEN(MES$)*4 : FT_Y=215 : GOSUB *FT_0816
  577. 5810 '
  578. 5820 WHILE ((PTRIG(1) AND 1)=1):WEND
  579. 5830 IF R_LINE(0)=0 THEN SCREEN 1,0
  580. 5840 WHILE ((PTRIG(1) AND 1)=0)
  581. 5850   IF R_LINE(0)=0 THEN 
  582. 5860     COUNT=(COUNT+1) MOD 100
  583. 5870     IF (COUNT MOD 50)=0 THEN
  584. 5880       PALETTE 1,2+(COUNT \ 50)*5 : PALETTE 2,7-(COUNT \ 50)*5
  585. 5890     ENDIF
  586. 5900     WAIT 1
  587. 5910   ENDIF
  588. 5920 WEND
  589. 5930 IF R_LINE(0)<>0 THEN
  590. 5940   LINE(0,215)-(319,239),PSET,[0,0,0,1],BF
  591. 5950   LOAD@ "snd\OCHIRU3.SND",G_BUF
  592. 5960   PCMPLAY G_BUF
  593. 5970   COUNT=0 : DY=4 : WHILE (COUNT < 240)
  594. 5980     ROLL DY,,1 : COUNT=COUNT+DY
  595. 5990     LINE (0,0)-(0,DY),PSET,[0,0,0,1],BF
  596. 6000     WAIT 1
  597. 6010   WEND
  598. 6020   FA_F=0 : GOSUB *DSP_FADE : GOTO *TITLE
  599. 6030 ENDIF
  600. 6040 SCREEN 1,1 : FA_F=0 : GOSUB *DSP_FADE
  601. 6050 SCREEN 1,0 : SCREEN@ 1: VIEW (0,0)-(511,239) 
  602. 6060 '
  603. 6070 LINE(0,0)-(511,239),PSET,7,BF
  604. 6075 LOAD@ "SND\CAMERA2.SND",SND_CAMERA
  605. 6080 LOAD@ "TITLE\GIRL"+CHR$(ED_BACK+&H30)+".VRM",G_BUF
  606. 6090 PUT@A (272,0)-(511,239),G_BUF
  607. 6100 SCREEN 1,1
  608. 6110 FOR I=0 TO 239 STEP 2
  609. 6120   LINE (0,I)-(319,I),PSET,7,BF
  610. 6130   LINE (0,239-I)-(319,239-I),PSET,7,BF
  611. 6140 NEXT I
  612. 6150 LINE (5,0)-(280,319),PSET,[0,0,0,1],BF
  613. 6160 CIRCLE (160,120),80,0
  614. 6170 LINE (130,110)-(190,130),PSET,0,B
  615. 6180 LINE (145,110)-(175,130),PSET,[0,0,0,1],B
  616. 6190 '
  617. 6200 SCREEN 1,0
  618. 6210 DX=4 : FOR I=0 TO 240/DX-1 
  619. 6220   GET@A (512-DX*(I+1),0)-(511-DX*I,239),G_BUF,DX*I*240
  620. 6230 NEXT I : VIEW
  621. 6240 FOR I=0 TO 240/DX-1
  622. 6250   PUT@A (0,0)-(DX-1,239),G_BUF,,,,,DX*I*240
  623. 6260   ROLL ,DX,1 
  624. 6270 NEXT I
  625. 6280 WAIT 50
  626. 6290 '
  627. 6300 SCREEN 1,1
  628. 6310 FOR I=0 TO 119 STEP 30
  629. 6320   LINE (0,0)-(319,I+30),PSET,0,BF
  630. 6330   LINE (0,239-I)-(319,209-I),PSET,0,BF
  631. 6340   WAIT 5
  632. 6350 NEXT I
  633. 6360 SCREEN 1,0 : ROLL ,80
  634. 6370   LINE(0,0)-(80,239),PSET,7,BF
  635. 6380   PCMPLAY SND_CAMERA
  636. 6400 SCREEN 1,1
  637. 6410 FOR I=90 TO 0 STEP -30
  638. 6420   LINE (0,0)-(319,I+30),PSET,[0,0,0,1],BF
  639. 6430   LINE (0,239-I)-(319,209-I),PSET,[0,0,0,1],BF
  640. 6440   WAIT 5
  641. 6450 NEXT I
  642. 6460 '
  643. 6470 LOAD@ "GRAPHIC\TITLE.DAT",G_BUF
  644. 6480 FOR I=0 TO 19 STEP 2
  645. 6490   PUT@A (0,I+76)-(159,I+76),G_BUF,MATTE,,,7,(136+I)*160
  646. 6500   PUT@A (0,95-I)-(159,95-I),G_BUF,MATTE,,,7,(155-I)*160
  647. 6510 NEXT I
  648. 6520 FOR I=0 TO 47 STEP 2
  649. 6530   PUT@A (0,118+I)-(159,118+I),G_BUF,MATTE,,,7,(181+I)*160
  650. 6540   PUT@A (0,165-I)-(159,165-I),G_BUF,MATTE,,,7,(228-I)*160
  651. 6550 NEXT I
  652. 6560 LOAD@ "EUP\ENDING1.EUP",G_BUF,1 : PLAY@ G_BUF
  653. 6570 WHILE(PLAY(0)):WEND: OUT &H5EC,1
  654. 6580 FA_F=0 : GOSUB *DSP_FADE : GOTO *TITLE
  655. 6590 *A_WAIT_2 : WHILE ((PTRIG(1)AND 1)=1) : WEND
  656. 6600 *A_WAIT   : WHILE ((PTRIG(1)AND 1)=0) : WEND
  657. 6610             WHILE ((PTRIG(1)AND 1)=1) : WEND : RETURN
  658. 6620 *WAIT1   : WAIT 30 : IF (PTRIG(1)AND 1)=1 THEN RETURN
  659. 6630            WAIT 95 : RETURN
  660. 6640 *G_BACK_INIT
  661. 6650 DATA 34,44,34,3C,2C,44,3C,2C,3C,2C,2C,44,34,3C,44,34
  662. 6660 DATA 2C,34,44,2C,2C,2C,34,34,34,3C,44,34,34,44,2C,44
  663. 6670 DATA 34,2C,2C,44,34,44,2C,44,2C,34,2C,44,3C,2C,34,3C
  664. 6680 DATA 2C,3C,2C,34,3C,2C,34,3C,2C,2C,44,34,3C,44,34,2C
  665. 6690 DATA 3C,34,34,44,34,34,2C,34,3C,44,3C,2C,44,3C,2C,44
  666. 6700 DATA 2C,44,34,2C,2C,3C,34,3C,44,3C,3C,3C,3C,2C,34,34
  667. 6710 DATA 44,3C,3C,44,34,44,3C,34,2C,2C,34,3C,34,44,34,2C
  668. 6720 DATA 34,2C,34,2C,44,2C,34,3C,44,34,34,2C,3C,3C,44,34
  669. 6730 DATA 44,34,2C,44,2C,34,34,34,3C,2C,3C,34,44,2C,34,2C
  670. 6740 DATA 34,44,34,3C,44,3C,44,34,2C,3C,2C,2C,3C,44,2C,2C
  671. 6750 DATA 3C,3C,44,2C,2C,34,3C,2C,3C,2C,3C,34,44,2C,34,34
  672. 6760 DATA 44,3C,3C,44,2C,3C,34,2C,34,34,44,2C,2C,3C,44,2C
  673. 6770 DATA 2C,2C,34,2C,3C,34,3C,44,3C,34,34,44,34,44,2C,44
  674. 6780 DATA 34,3C,3C,44,3C,2C,34,2C,3C,44,2C,44,2C,34,44,2C
  675. 6790 DATA 34,2C,3C,2C,44,2C,44,3C,2C,2C,44,3C,2C,34,3C,44
  676. 6800 DATA 3C,34,34,44,34,44,34,2C,3C,3C,2C,34,2C,2C,44,3C
  677. 6810 RESTORE *G_BACK_INIT
  678. 6820 FOR I=0 TO 255 : READ I$ : G_BACK(I)=VAL("&H"+I$+"00") : NEXT I
  679. 6830 RETURN
  680. 6840 '
  681. 6850 ' DX,DY = 表示指定(左上) 
  682. 6860 ' WX,WY = 幅(正)   (ブロック数)
  683. 6870 *DSP_G_BACK_ALL : DX=0 : DY=0 : WX=20 : WY=15 
  684. 6880 *DSP_G_BACK
  685. 6890 FOR DG_X=DX TO DX+16*(WX-1) STEP 16
  686. 6900 FOR DG_Y=DY TO DY+16*(WY-1) STEP 16
  687. 6910   PUT@A (DG_X,DG_Y)-(DG_X+15,DG_Y+15),G_BACK
  688. 6920 NEXT 
  689. 6930 NEXT :RETURN
  690. 6940 '
  691. 6950 ' プレイヤーセレクトカーソル表示/消去
  692. 6960 *DSP_PL_CURSOR
  693. 6970 PUT@A (PL_CUR*80,48)-(PL_CUR*80+79,159),G_PLSEL,MATTE,,,7,40570
  694. 6980 RETURN
  695. 6990 *ERS_PL_CURSOR
  696. 7000 PUT@A (PL_CUR*80,48)-(PL_CUR*80+79,159),G_PLSEL,MATTE,,,7,49530
  697. 7010 RETURN
  698. 7020 '
  699. 7030 ' 12dot フォントの表示
  700. 7040 ' dx = x 座標指定  : cx = センタリング位置指定
  701. 7050 ' dy = y 座標指定(左上)
  702. 7060 ' info$ = 文字列
  703. 7070 *DSP_INFO_C  ' センタリング
  704. 7080 DX=CX-LEN(INFO$)*3
  705. 7090 *DSP_INFO
  706. 7100 SYMBOL (DX,DY),INFO$,.75!,.75!,[255,255,255,0]
  707. 7110 RETURN
  708. 7120 *ERS_INFO_C
  709. 7130 DX=CX-LEN(INFO$)*3
  710. 7140 *ERS_INFO
  711. 7150 LINE (DX,DY)-(DX+LEN(INFO$)*6,DY+11),PSET,0,BF
  712. 7160 RETURN
  713. 7170 '
  714. 7180 ' はい/いいえ 選択
  715. 7190 '  座標指定は 12DOTフォント表示と同じ 
  716. 7200 '  I_YN : -1 YES   0 NO
  717. 7210 '
  718. 7220 *SEL_YN_C : INFO$=" はい  いいえ" : GOSUB *DSP_INFO_C : GOTO 7240
  719. 7230 *SEL_YN   : INFO$=" はい  いいえ" : GOSUB *DSP_INFO
  720. 7240 SYMBOL (DX-(NOT(I_YN))*48,DY+1),"●",.75!,.75!,2,,XOR
  721. 7250 IF PAD(1)<>0 OR PTRIG(1)<>0 THEN 7250
  722. 7260 I_PAD=PAD(1) : I_PTG=PTRIG(1)
  723. 7270 IF I_PAD<>3 AND I_PAD<>7 AND (I_PTG AND 1)=0 THEN 7260
  724. 7280 SYMBOL (DX-(NOT(I_YN))*48,DY+1),"●",.75!,.75!,2,,XOR
  725. 7290 IF I_PAD=3 OR I_PAD=7 THEN I_YN=NOT(I_YN)
  726. 7300 'IF (I_PTG AND 1)=0 THEN GOSUB *DSP_PL_CURSOR : GOTO 5880
  727. 7310 IF (I_PTG AND 1)=0 THEN GOTO 7240
  728. 7320  ' Aボタンを押した
  729. 7330 RETURN
  730. 7340 '
  731. 7350 '  8DOT 数字 FONT 表示   dsp$ : 表示文字列  dx,dy 表示 右端上
  732. 7360 *DSP_G_NUM
  733. 7370   FT_X=DX-LEN(DSP$)*8+1 : FT_Y=DY
  734. 7380   MES$=DSP$
  735. 7390 GOSUB *FT_0808
  736. 7400 RETURN
  737. 7410 '
  738. 7420 ' CARD SHUFFLE
  739. 7430 '
  740. 7440 *CARD_SHUF
  741. 7450 FOR C_I=0 TO 39
  742. 7460   J=INT(RND(1)*40) : IF C_I=J THEN 7460 ELSE SWAP CARD(C_I),CARD(J)
  743. 7470 NEXT C_I :RETURN
  744. 7480 '
  745. 7490 *CARD_INIT
  746. 7500 FOR I=0 TO 39 : CARD(I)=(I MOD 10) : NEXT I
  747. 7510 GOSUB *CARD_SHUF : RETURN
  748. 7520 '
  749. 7530 ' dsp_card   C_SIDE=0 :表 =1:裏  =2:消去  =3:上16DOT裏表示 =4:同表
  750. 7540 '            CPN = カードの場所 (0~14)
  751. 7550 *DSP_CARD
  752. 7560 IF C_SIDE=1 THEN PUT@A(CPX(CPN),CPY(CPN))-(CPX(CPN)+39,CPY(CPN)+55),G_CARD,MATTE,,,[CTG,CTR,CTB],10*56*40 : RETURN
  753. 7570 IF C_SIDE=0 THEN PUT@A(CPX(CPN),CPY(CPN))-(CPX(CPN)+39,CPY(CPN)+55),G_CARD,MATTE,,,[CTG,CTR,CTB],C_LINE(CPN \ 3,(CPN MOD 3)+1)*56*40 : RETURN
  754. 7580 IF C_SIDE=3 THEN PUT@A(CPX(CPN),CPY(CPN))-(CPX(CPN)+39,CPY(CPN)+15),G_CARD,MATTE,,,[CTG,CTR,CTB],10*56*40 : RETURN
  755. 7590 IF C_SIDE=4 THEN PUT@A(CPX(CPN),CPY(CPN))-(CPX(CPN)+39,CPY(CPN)+15),G_CARD,MATTE,,,[CTG,CTR,CTB],C_LINE(CPN \ 3,(CPN MOD 3)+1)*56*40 : RETURN
  756. 7600 RETURN
  757. 7610 '
  758. 7620 ' 親の枠を表示する
  759. 7630 '
  760. 7640 *DSP_OYA_WAKU
  761. 7650   PUT@A ( 4, 6)-(71,65),G_GAME,,,,,P_WAKU(P_WORK(0))*4080+23040
  762. 7660   PUT@A (28,10)-(67,61),G_GAME,,,,,P_FACE(P_WORK(0))*2080+55072
  763. 7670   PUT@A ( 7,30)-(24,41),G_GAME,,,,,P_WORK(0)*216+43200
  764. 7680 RETURN
  765. 7690 '
  766. 7700 ' 子の順番表示
  767. 7710 '
  768. 7720 *DSP_KO_DIR
  769. 7730 FOR J=1 TO 3
  770. 7740   PUT@A (7,174+J*16)-(24,185+J*16),G_GAME,,,,,P_WORK(J)*216+43200
  771. 7750 NEXT J
  772. 7760 RETURN
  773. 7770 '
  774. 7780 ' スコア表示
  775. 7790 *DSP_SCO
  776. 7800   DX=315: DY=48+60*P_WAKU(P) : DSP$=RIGHT$("    "+STR$(P_SCO(P)),5) : GOSUB *DSP_G_NUM
  777. 7810 RETURN
  778. 7820 '
  779. 7830 ' 賭けた内容表示    P=キャラクタナンバー
  780. 7840 *DSP_BET
  781. 7850 FOR J=0 TO 3
  782. 7860   IF B_GOLD(P,J)>0 THEN
  783. 7870     PUT@A (32+48*J,174+P_DIR(P)*16)-(71+48*J,185+P_DIR(P)*16),G_GAME,,,,,39360+P_WAKU(P)*480
  784. 7880     DX=59+48*J : DY=176+P_DIR(P)*16 
  785. 7890     DSP$=RIGHT$(" "+STR$(B_GOLD(P,J)),2)
  786. 7900     GOSUB *DSP_G_NUM
  787. 7910   ELSE
  788. 7920     LINE(32+48*J,174+P_DIR(P)*16)-(71+48*J,185+P_DIR(P)*16),PSET,[0,0,0,1],BF
  789. 7930   ENDIF 
  790. 7940 NEXT J
  791. 7950 GOSUB *DSP_SCO
  792. 7960 RETURN
  793. 7970 '
  794. 7980 ' 賭けるときの思考ルーチン
  795. 7990 *B_COM1
  796. 8000 J=INT(RND(1)*5+1) : B_GOLD(P,INT(RND(1)*4))=J:B_J=INT(RND(1)*4)
  797. 8010 B_GOLD(P,B_J)=(5-J)+B_GOLD(P,B_J)
  798. 8020 RETURN
  799. 8030 '
  800. 8040 *B_COM2
  801. 8050 B_I=9 : B_J=0
  802. 8060 FOR J=0 TO 3
  803. 8070   IF ABS(B_I-2)>ABS(C_LINE(J,1)-2) THEN B_I=C_LINE(J,1):B_J=J
  804. 8080 NEXT J
  805. 8090 B_GOLD(P,B_J)=4 
  806. 8100 B_J=INT(RND(1)*4) : B_GOLD(P,B_J)=1+B_GOLD(P,B_J)
  807. 8110 RETURN
  808. 8120 '
  809. 8130 *B_COM3
  810. 8140 B_I=9 : B_J=0
  811. 8150 FOR J=0 TO 3
  812. 8160   IF ABS(B_I-4)>ABS(C_LINE(J,1)-4) THEN B_I=C_LINE(J,1):B_J=J
  813. 8170 NEXT J
  814. 8180 B_GOLD(P,B_J)=3
  815. 8190 B_J=INT(RND(1)*4) : B_GOLD(P,B_J)=2+B_GOLD(P,B_J)
  816. 8200 RETURN
  817. 8210 '
  818. 8220 *B_HUMAN
  819. 8230 SCREEN 1,0 
  820. 8240   LINE(0,P_DIR(P)*16+172)-(223,P_DIR(P)*16+187),PASTEL,7,BF
  821. 8250 SCREEN 1,1
  822. 8260 B_CUR=0 : B_SUM=0 : GOSUB *DSP_B_CUR
  823. 8270 WHILE ((PTRIG(1) AND 1)=0 OR B_SUM=0)
  824. 8280   J=PAD(1)
  825. 8290   IF J<>0 THEN
  826. 8300     IF J=1 AND B_SUM<B_GOLD_MAX THEN 
  827. 8310       B_SUM=B_SUM+1 : B_GOLD(0,B_CUR)=B_GOLD(0,B_CUR)+1
  828. 8320       GOSUB *DSP_B_CUR
  829. 8330     ENDIF
  830. 8340     IF J=5 AND B_SUM>0 AND B_GOLD(0,B_CUR)>0 THEN
  831. 8350       B_SUM=B_SUM-1 : B_GOLD(0,B_CUR)=B_GOLD(0,B_CUR)-1
  832. 8360       GOSUB *DSP_B_CUR
  833. 8370     ENDIF
  834. 8380     IF (J=3 OR J=7) THEN 
  835. 8390       IF B_GOLD(0,B_CUR)=0 THEN LINE (31+48*B_CUR,173+P_DIR(0)*16)-(72+48*B_CUR,186+P_DIR(0)*16),PSET,[0,0,0,1],BF ELSE LINE (31+48*B_CUR,173+P_DIR(0)*16)-(72+48*B_CUR,186+P_DIR(0)*16),PSET,[0,0,0,1],B
  836. 8400       B_CUR=(4+B_CUR-(J-5)/2) MOD 4
  837. 8410       GOSUB *DSP_B_CUR
  838. 8420     ENDIF
  839. 8430     WHILE (PAD(1)<>0) : WEND
  840. 8440   ENDIF
  841. 8450 WEND
  842. 8460 IF B_GOLD(0,B_CUR)=0 THEN LINE (31+48*B_CUR,173+P_DIR(0)*16)-(72+48*B_CUR,186+P_DIR(0)*16),PSET,[0,0,0,1],BF ELSE LINE (31+48*B_CUR,173+P_DIR(0)*16)-(72+48*B_CUR,186+P_DIR(0)*16),PSET,[0,0,0,1],B
  843. 8470 SCREEN 1,0
  844. 8480   DX=0 : DY=160 : WX=16 : WY=5 : GOSUB *DSP_G_BACK
  845. 8490 SCREEN 1,1
  846. 8500 CX=112 : DY=74 : GOSUB *ERS_INFO_C
  847. 8510 RETURN
  848. 8520 *DSP_B_CUR
  849. 8530   LINE (31+48*B_CUR,173+P_DIR(0)*16)-(72+48*B_CUR,186+P_DIR(0)*16),PSET,2,B
  850. 8540   PUT@A (32+48*B_CUR,174+P_DIR(0)*16)-(71+48*B_CUR,185+P_DIR(0)*16),G_GAME,,,,,39360+P_WAKU(0)*480
  851. 8550   DX=59+48*B_CUR : DY=176+P_DIR(0)*16 
  852. 8560   DSP$=RIGHT$(" "+STR$(B_GOLD(P,B_CUR)),2)
  853. 8570   GOSUB *DSP_G_NUM
  854. 8580 RETURN
  855. 8590 '
  856. 8600 ' 3枚目を引くときの思考ルーチン
  857. 8610 *P3_COM1
  858. 8620 *P3_COM2
  859. 8630 *P3_COM3
  860. 8640 TAKE=INT(RND(1)*2)
  861. 8650 IF TAKE=0 THEN INFO$=CM$(P,0) ELSE INFO$=CM$(P,1)
  862. 8660 INFO$="COM"+STR$(P)+INFO$ : DY=74 : GOSUB *DSP_INFO_C : WAIT 50
  863. 8670 RETURN
  864. 8680 *P3_HUMAN
  865. 8690 LINE(0,72)-(223,87),PSET,0,BF
  866. 8700 DX=0 : INFO$="もう1枚必要?" : GOSUB *DSP_INFO
  867. 8710 DX=112 : GOSUB *SEL_YN
  868. 8720 LINE(0,72)-(223,87),PSET,0,BF
  869. 8730 TAKE=-I_YN
  870. 8740 RETURN
  871. 8750 ' 全画面フェイド処理
  872. 8760 ' fa_f = フェイドフラグ 
  873. 8770 '
  874. 8780 *DSP_FADE
  875. 8790 FOR FA_I=0 TO 239 STEP 2               ' fade in
  876. 8800   LINE (0,FA_I)-(319,FA_I),PSET,[0,0,0,FA_F]
  877. 8810   LINE (0,239-FA_I)-(319,239-FA_I),PSET,[0,0,0,FA_F]
  878. 8820   IF FA_I MOD 4=0 THEN WAIT 1
  879. 8830 NEXT FA_I
  880. 8840 RETURN
  881. 8850 '
  882. 8860 ' フォント(8ドット*16ドット)表示ル-チン
  883. 8870 ' FT_X,FT_Y == 表示座標  MES$ == 表示文字列
  884. 8880 *FT_0816
  885. 8890 FT_O=0
  886. 8900 FOR FT_P=0 TO KLEN(MES$)-1
  887. 8910   IF KINSTR( FTA$, KMID$(MES$,FT_P+1,1) )<>0 THEN 
  888. 8920     PUT@A (FT_X+(FT_P+FT_O)*8,FT_Y)-(FT_X+(FT_P+FT_O)*8+7,FT_Y+15),FTA0816,,,,,(KINSTR(FTA$ , KMID$(MES$,FT_P+1,1) )-1)*16*8 
  889. 8930 NEXT FT_P : RETURN
  890. 8940 ENDIF
  891. 8950   FOR FT_I=1 TO 10
  892. 8960      IF KINSTR( FTK$(FT_I), KMID$(MES$,FT_P+1,1) )<>0 THEN 
  893. 8970      PUT@A (FT_X+(FT_P+FT_O)*8,FT_Y)-(FT_X+(FT_P+FT_O)*8+7,FT_Y+15),FTK,,,,,(KINSTR(FTK$(FT_I) , KMID$(MES$,FT_P+1,1) )-1+FTK_O(FT_I))*16*8
  894. 8980     IF (FT_I+3)\6=1 THEN FT_O=FT_O+1 : PUT@A (FT_X+(FT_P+FT_O)*8,FT_Y)-(FT_X+(FT_P+FT_O)*8+7,FT_Y+15),FTK,,,,,(KINSTR(FTK$(2),"゛")+FTK_O(2)-1)*16*8
  895. 8990     IF (FT_I+3)\6=2 THEN FT_O=FT_O+1 : PUT@A (FT_X+(FT_P+FT_O)*8,FT_Y)-(FT_X+(FT_P+FT_O)*8+7,FT_Y+15),FTK,,,,,(KINSTR(FTK$(2),"゜")+FTK_O(2)-1)*16*8
  896. 9000     FT_I=10
  897. 9010     ENDIF
  898. 9020   NEXT FT_I
  899. 9030 NEXT FT_P
  900. 9040 RETURN
  901. 9050 ' フォント(8ドット*8ドット)表示ル-チン
  902. 9060 ' FT_X,FT_Y == 表示座標  MES$ == 表示文字列
  903. 9070 *FT_0808
  904. 9080 FOR FT_P=0 TO LEN(MES$)-1
  905. 9090   IF INSTR( FTA$, MID$(MES$,FT_P+1,1) )<>0 THEN 
  906. 9100     PUT@A (FT_X+FT_P*8,FT_Y)-(FT_X+FT_P*8+7,FT_Y+7),FTA0808,,,,,(INSTR(FTA$ , MID$(MES$,FT_P+1,1) )-1)*8*8
  907. 9110 ENDIF
  908. 9120 NEXT FT_P
  909. 9130 RETURN
  910. 9140 ' 5枚配る
  911. 9150 *BRING5CARD
  912. 9160 FOR CPN=0+C_SIDE TO 9+C_SIDE STEP 3 
  913. 9170   C_LINE(CPN\3,0)=(COUNT \ 5)+1 : C_LINE(CPN\3,(COUNT \ 5)+1)=CARD(COUNT) : COUNT=COUNT+1
  914. 9180   PCMPLAY SND_CARD : GOSUB *DSP_CARD : WAIT 15
  915. 9190 NEXT CPN : C_SIDE=1
  916. 9200 C_LINE(4,0)=(COUNT \5)+1 : C_LINE(4,1)=CARD(COUNT) 
  917. 9210 COUNT=COUNT+1 : PCMPLAY SND_CARD : GOSUB *DSP_CARD
  918. 9220 RETURN
  919. 9230 '
  920. 9240 ' 説明用 ルーチン
  921. 9250 *SETUMEI
  922. 9260 SCREEN 1,1 : FA_F=0 : GOSUB *DSP_FADE
  923. 9270 IF DEMO_MODE=0 THEN RESTORE *SETUMEI_DAT : CODE$="" : READ CODE$
  924. 9280 SCREEN 1,0 : GOSUB *DSP_G_BACK_ALL
  925. 9290              LINE (0,72)-(319,87),PSET,0,BF
  926. 9300 RESTORE *SETUMEI_DAT : CODE$="" : READ CODE$
  927. 9310              PUT@A (80,20)-(239,67),G_PLSEL,,,,,58490
  928. 9320              IF SND_CARD(6)=0 THEN LOAD@"snd\card3.snd",SND_CARD
  929. 9330 SCREEN 1,1 : FA_F=1 : GOSUB *DSP_FADE
  930. 9340 '
  931. 9350 WHILE (CODE$<>"*" AND PTRIG(1)=0)
  932. 9360   IF CODE$="C" THEN
  933. 9370     READ CX,DY,INFO$ : GOSUB *DSP_INFO_C
  934. 9380   ENDIF
  935. 9390   IF CODE$="YAKU" THEN
  936. 9400     READ DX,DY,I : PUT@A (DX,DY)-(DX+39,DY+15),G_GAME,,,,,52512+I*640
  937. 9410   ENDIF
  938. 9420   IF CODE$="D" THEN
  939. 9430     READ DX,DY,INFO$ : GOSUB *DSP_INFO
  940. 9440   ENDIF
  941. 9450   IF CODE$="W" THEN
  942. 9460     READ COUNT
  943. 9470     WHILE (COUNT>0 AND PTRIG(1)=0) : COUNT=COUNT-1 : WAIT 1 : WEND
  944. 9480   ENDIF
  945. 9490   IF CODE$="CL_INFO" THEN
  946. 9500     LINE(0,72)-(319,87),PSET,0,BF
  947. 9510   ENDIF
  948. 9520   IF CODE$="CLS" THEN
  949. 9530     GOSUB *DSP_FADE
  950. 9540   ENDIF
  951. 9550   IF CODE$="CLS_UNDER" THEN
  952. 9560     LINE(0,72)-(319,239),PSET,[0,0,0,1],BF
  953. 9570   ENDIF
  954. 9580   IF CODE$="DSP_CARD" THEN
  955. 9590     READ DX,DY,NUM  :' NUM=10 : 裏   NUM=0;カードの10 
  956. 9600     PCMPLAY SND_CARD
  957. 9610     PUT@A(DX,DY)-(DX+39,DY+55),G_CARD,MATTE,,,[CTG,CTR,CTB],NUM*2240
  958. 9620   ENDIF
  959. 9630   READ CODE$
  960. 9640 WEND
  961. 9650 COUNT=0 : SCREEN 1,1 : FA_F=0 : GOSUB *DSP_FADE : RETURN *TITLE1
  962. 9660 ' 説明用データ
  963. 9670 *SETUMEI_DAT
  964. 9680 DATA C,160,28,持ち札の数の和の1の位が
  965. 9690 DATA C,160,48,おおきいほど強い,W,100
  966. 9700 DATA DSP_CARD,32,96,2
  967. 9710 DATA DSP_CARD,80,96,6
  968. 9720 DATA CL_INFO
  969. 9730 DATA C,160,74,たとえば・・・,W,50
  970. 9740 DATA D,176,108,2,W,50
  971. 9750 DATA D,182,108,+,W,50
  972. 9760 DATA D,188,108,6,W,50
  973. 9770 DATA D,194,108,=,W,50
  974. 9780 DATA D,202,108,8,W,50
  975. 9790 DATA CL_INFO
  976. 9800 DATA C,160,74,2+6=8で 一桁目は8,W,50
  977. 9810 DATA D,226,108,--強さ 8,W,150
  978. 9820 DATA DSP_CARD,32,156,5
  979. 9830 DATA D,176,156,5,W,50
  980. 9840 DATA D,182,156,+,W,50
  981. 9850 DATA DSP_CARD,80,156,7
  982. 9860 DATA D,188,156,7,W,50
  983. 9870 DATA D,194,156,+,W,50
  984. 9880 DATA DSP_CARD,128,156,4
  985. 9890 DATA D,200,156,4,W,50
  986. 9900 DATA D,206,156,=,W,50
  987. 9910 DATA D,212,156,16,W,50
  988. 9920 DATA CL_INFO
  989. 9930 DATA C,160,74,5+7+4=16で 一桁目は6,W,50
  990. 9940 DATA D,226,156,--強さ 6
  991. 9950 DATA CL_INFO
  992. 9960 DATA C,160,224,この場合、8対6で上の勝ち,W,400
  993. 9970 DATA "CLS_UNDER"
  994. 9980 DATA C,160,74,もう一度するよ,W,100
  995. 9990 DATA DSP_CARD,32,96,3
  996. 10000 DATA D,176,108,3,W,50
  997. 10010 DATA D,182,108,+,W,50
  998. 10020 DATA DSP_CARD,80,96,8
  999. 10030 DATA D,188,108,8,W,50
  1000. 10040 DATA D,194,108,+,W,50
  1001. 10050 DATA DSP_CARD,128,96,6
  1002. 10060 DATA D,202,108,6,W,50
  1003. 10070 DATA D,208,108,=,W,50
  1004. 10080 DATA D,214,108,17,W,50
  1005. 10090 DATA CL_INFO
  1006. 10100 DATA C,160,74,3+8+6=17で 一桁目は7,W,50
  1007. 10110 DATA D,226,108,--強さ 7,W,150
  1008. 10120 DATA DSP_CARD,32,156,9
  1009. 10130 DATA D,176,156,9,W,50
  1010. 10140 DATA D,182,156,+,W,50
  1011. 10150 DATA DSP_CARD,80,156,7
  1012. 10160 DATA D,188,156,7,W,50
  1013. 10170 DATA D,194,156,+,W,50
  1014. 10180 DATA DSP_CARD,128,156,9
  1015. 10190 DATA D,200,156,9,W,50
  1016. 10200 DATA D,206,156,=,W,50
  1017. 10210 DATA D,212,156,25,W,50
  1018. 10220 DATA CL_INFO
  1019. 10230 DATA C,160,74,9+7+9=25で 一桁目は5,W,50
  1020. 10240 DATA D,226,156,--強さ 5
  1021. 10250 DATA CL_INFO
  1022. 10260 DATA C,160,224,この場合も、7対5で上の勝ち,W,400
  1023. 10270 DATA CLS
  1024. 10280 DATA C,160,28,一発逆転の
  1025. 10290 DATA C,160,48,役,W,300
  1026. 10300 DATA C,160,74,これだけだと、最強は合計が9のとき,W,50
  1027. 10310 DATA DSP_CARD,32,96,4
  1028. 10320 DATA D,176,108,4+,W,100
  1029. 10330 DATA DSP_CARD,80,96,5
  1030. 10340 DATA D,188,108,5=,W,100
  1031. 10350 DATA D,204,108,9 強さ -- 9,W,50
  1032. 10360 DATA YAKU,204,122,0
  1033. 10370 DATA C,160,160,強さが9のとき、「かぶ」といいます,W,400
  1034. 10380 DATA CLS_UNDER
  1035. 10390 DATA C,160,74,しかし・・・,W,100,CL_INFO
  1036. 10400 DATA D,40,74,子が,W,50
  1037. 10410 DATA DSP_CARD,32,96,2,W,50 ,D,64,74,このように,W,50
  1038. 10420 DATA DSP_CARD,80,96,2,W,50 
  1039. 10430 DATA D,124,74,3枚のカードが全て同じなら・・・,W,50
  1040. 10440 DATA DSP_CARD,128,96,2,W,50,YAKU,176,112,1
  1041. 10450 DATA C,160,160,この状態を「あらし」といい,W,200
  1042. 10460 DATA C,160,174,子は自動的に勝ちになります,W,300
  1043. 10470 DATA CLS_UNDER
  1044. 10480 DATA C,160,74,また・・・,W,100,CL_INFO
  1045. 10490 DATA D,40,74,胴元の,W,50
  1046. 10500 DATA DSP_CARD,32,96,4,W,50 ,D,76,74,二枚のカードが,W,50
  1047. 10510 DATA DSP_CARD,80,96,1,W,50 ,D,160,74,4と1、,W,50
  1048. 10520 DATA YAKU,128,122,3,D,178,118,「しっぴん」,W,100
  1049. 10530 DATA DSP_CARD,32,156,1,W,50 ,D,208,74,9と,W,50
  1050. 10540 DATA DSP_CARD,80,156,9,W,50 ,D,234,74,1のとき
  1051. 10550 DATA YAKU,128,182,2 ,D,178,178,「くっぴん」,W,100
  1052. 10560 DATA C,160,214,「しっぴん」「くっぴん」といい、「あらし」を除いて勝てます
  1053. 10570 DATA W,500
  1054. 10580 DATA *
  1055. 10590 '
  1056. 10600 ' CONFIG
  1057. 10610 *CONFIG
  1058. 10620 DEF FONT"システム   16ドット"
  1059. 10630 SCREEN 1,1 : FA_F=0 : GOSUB *DSP_FADE
  1060. 10640 SCREEN 1,0 : GOSUB *DSP_G_BACK_ALL
  1061. 10650              LOAD@ "GRAPHIC\CONFIG.DAT",G_BUF
  1062. 10660              PUT@A (52,11)-(267,42),G_BUF
  1063. 10670 RESTORE *CONFIG_DAT : MAX=-1 : READ MES$
  1064. 10680 SCREEN 1,1 : FA_F=1 : GOSUB *DSP_FADE
  1065. 10690 WHILE (MES$<>"*")
  1066. 10700   READ DY,J
  1067. 10710   IF J THEN MAX=MAX+1 : G_BUF(MAX)=DY
  1068. 10720   SYMBOL(30,50+DY*20),MES$,1,1,7,,,4
  1069. 10730   READ MES$
  1070. 10740 WEND
  1071. 10750 '
  1072. 10760 SYMBOL (110,50+1*20),RIGHT$(" "+AKCNV$(STR$(DOU_CHANGE)),4)+"面ごと",1,1,7,,,4
  1073. 10770 SYMBOL (110,50+2*20),RIGHT$(" "+AKCNV$(STR$(STAGE_MAX)),4)+"面",1,1,7,,,4
  1074. 10780 '
  1075. 10790 CON_SEL=0
  1076. 10800 *CON_SEL
  1077. 10810 SYMBOL (10,50+G_BUF(CON_SEL)*20),"●",1,1,2
  1078. 10820 WHILE (PAD(1)<>0 OR PTRIG(1)<>0) : WEND : I=0 : J=0
  1079. 10830 WHILE (I=0 AND J=0) : I=PAD(1) : J=PTRIG(1) : WEND
  1080. 10840 'IF CON_SEL=0 AND J=4 THEN STAGE_MAX=1 : GOTO 11000
  1081. 10850 IF I=1 OR I=5 THEN 
  1082. 10860   LINE(10,50+G_BUF(CON_SEL)*20)-(25,65+G_BUF(CON_SEL)*20),PSET,[0,0,0,1],BF
  1083. 10870   CON_SEL=(CON_SEL+(I-3)/2+MAX+1) MOD (MAX+1)
  1084. 10880   GOTO *CON_SEL
  1085. 10890 ENDIF
  1086. 10900 IF I<>3 AND I<>7 AND (J AND 1)=0 THEN *CON_SEL
  1087. 10910 IF CON_SEL=0 THEN
  1088. 10920   IF (DOU_CHANGE=2 AND I=7) OR (DOU_CHANGE=6 AND I=3) OR I=0 THEN *CON_SEL
  1089. 10930   DOU_CHANGE=DOU_CHANGE-(I-5)/2 : STAGE_MAX=DOU_CHANGE*4
  1090. 10940   LINE (110,50+1*20)-(319,50+3*20-1),PSET,[0,0,0,1],BF
  1091. 10950   SYMBOL (110,50+1*20),RIGHT$(" "+AKCNV$(STR$(DOU_CHANGE)),4)+"面ごと",1,1,7,,,4
  1092. 10960   SYMBOL (110,50+2*20),RIGHT$(" "+AKCNV$(STR$(STAGE_MAX)),4)+"面",1,1,7,,,4
  1093. 10970   GOTO *CON_SEL
  1094. 10980 ENDIF
  1095. 10990 IF G_BUF(CON_SEL)=7 AND J=0 THEN *CON_SEL 
  1096. 11000 SCREEN 1,1 : FA_F=0 : GOSUB *DSP_FADE
  1097. 11010 DEF FONT"システム   12ドット"
  1098. 11020 RETURN *TITLE1
  1099. 11030 *CONFIG_DAT
  1100. 11040 DATA 胴元交代,1,-1
  1101. 11050 DATA 終了面,2,0
  1102. 11060 DATA CONFIG 終了,7,-1
  1103. 11070 DATA *
  1104.